import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.attribute.BasicFileAttributes;

/**
 * Author: Daniel Michalski
 * Date: 05.04.13
 */

public class PathDemo {

    public static final String FILE_PATH = "examples\\test.txt";

    public static void main(String[] args) {
        Path filePath = Paths.get(FILE_PATH);

        System.out.println("Nazwa pliu: " + filePath.getName(1));
        System.out.println("Sciezka: " + filePath);
        System.out.println("Sciezka bezwzlędna: " + filePath.toAbsolutePath());
        System.out.println("Katalog macierzysty: " + filePath.getParent());

        if (Files.exists(filePath))
            System.out.println("Plik istnieje");
        else
            System.out.println("Plik nie istnieje");

        try {
            if(Files.isHidden(filePath))
                System.out.println("Plik jest ukryty");
            else
                System.out.println("Plik nie jest ukryty");
        } catch (IOException e) {
            System.out.println("Błąd wejścia-wyjścia: " + e);
        }

        if (Files.isWritable(filePath))
            System.out.println("Plik jest dostępny do zapisu");

        if (Files.isReadable(filePath))
            System.out.println("Plik jest dostępny do odczytu");

        try {
            BasicFileAttributes attribs =
                    Files.readAttributes(filePath, BasicFileAttributes.class);

            if (attribs.isDirectory())
                System.out.println("Plik jest katalogiem");
            else
                System.out.println("Plik nie jest katalogiem");

            if (attribs.isRegularFile())
                System.out.println("Plik jest zwykłym plikiem");
            else
                System.out.println("Plik nie jest zwykłym plikiem");

            if (attribs.isSymbolicLink())
                System.out.println("Plik jest dowiazaniem symbolicznym");
            else
                System.out.println("Plik nie jest dowiązaniem symbolicznym");

            System.out.println("Ostatnia modyfikaja pliku: " + attribs.lastModifiedTime());
            System.out.println("Rozmiar pliku: " + attribs.size() + " bajtów");

        } catch (IOException e) {
            System.out.println("Błąd odczytu atrybutów: " + e);
        }
    }
}
